This invention relates to a method and apparatus for maintaining source control for software and, more particularly, to a method and apparatus for maintaining source control for new successive versions of software, where modifications that have been made to a first version are not included in the new version.
In commercial settings, it is common practice to purchase software from an outside source and to modify the purchased software so that it can be incorporated within another product. The software from the outside source often is received in a xe2x80x9csource codexe2x80x9d format, i.e., in a format easily read and understood by human beings. The purchasing company makes modifications to an initial version of the software and incorporates the modified software within its product.
A problem arises when the third party changes the initial version of its software to yield a new version and ships the new version to the purchasing company. The purchasing company does not have xe2x80x9csource code controlxe2x80x9d over the purchased software, since it did not write either the initial version of the software or the new version of the software. Both the initial version and the new version of the software may be very large and may consist of many separate files. Moreover, in the interim, the purchasing company has modified the initial version of the software. It is problematic to ensure that any changes in the new version are integrated into the modified copy of the initial version.
The present invention provides a method and apparatus for maintaining source control in successive versions of software where modifications have been made to an initial version. The invention allows any changes in a new version of the software to be incorporated into the modified initial version of the software.
In accordance with the purpose of the invention, as embodied and broadly described herein, the invention is a method and apparatus for maintaining version control for an initial version of software stored in a memory, where the initial version has been modified to yield a modified initial version of the software that is also stored in the memory. The method comprises the steps, performed by a data processing system, of: creating, in the memory, a source tree containing the initial version and the modified initial version of the software; receiving a new version of the software; determining a difference between the new version and the initial version; integrating the difference between the new version and the initial version into a copy of the initial version to yield an integrated copy; and incorporating the integrated copy into a copy of the modified initial version to yield a modified new version.
Objects and advantages of the invention will be set forth in part in the description which follows and in part will be obvious from the description or may be learned by practice of the invention. The objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.